extends ../layouts/basic

block variablesLang
    include ./_variablesLang.jade

block extra_head
    title Features - Apache ECharts (incubating)

block content
    nav(class='navbar navbar-default navbar-fixed-top')
        include ./nav

    .page-info
        .container
            h1 Features

    .page-content.single-page
        .page-nav
            h4 Features
            ul
        .page-detail
            p.page-detail-desc ECharts is an open-sourced JavaScript visualization tool, which can run fluently on PC and mobile devices. It is compatible with most modern Web Browsers, e.g., IE8/9/10/11, Chrome, Firefox, Safari and so on. ECharts depends on <a href="https://github.com/ecomfe/zrender" target="_blank">ZRender</a>, a graphic rendering engine, to create intuitive, interactive, and highly-customizable charts.

            h2#chart-types Abundant Chart Types
            p The basic chart types ECharts supports include <a href="option.html#series-line" target="_blank">line series</a>, <a href="option.html#series-line" target="_blank">bar series</a>, <a href="option.html#series-scatter" target="_blank">scatter series</a>, <a href="option.html#series-pie" target="_blank">pie charts</a>, <a href="option.html#series-candlestick" target="_blank">candle-stick series</a>, <a href="option.html#series-boxplot" target="_blank">boxplot series</a> for statistics, <a href="option.html#series-map" target="_blank">map series</a>, <a href="option.html#series-heatmap" target="_blank">heatmap series</a>, <a href="option.html#series-lines" target="_blank">lines series</a> for directional information, <a href="option.html#series-graph" target="_blank">graph series</a> for relationships, <a href="option.html#series-treemap" target="_blank">treemap series</a>, <a href="option.html#series-sunburst">sunburst series</a>, <a href="option.html#series-parallel" target="_blank">parallel series</a> for multi-dimensional data, <a href="option.html#series-funnel" target="_blank">funnel series</a>, <a href="option.html#series-gauge" target="_blank">gauge series</a>. And it's extremely easy to create a combinition of them with ECharts.
            p Besides the built-in chart types, ECharts also provide the <a href="option.html#series-custom">customed series</a> for users to create a specific chart types. To use it, you should only pass in a callback function named <em>renderItem</em>, and return any graphic elements you wish to draw to according to the data. What makes it even better is that it can interact with the existing ECharts components and you don't have to worry about the interaction with them.
            p If the default package size is too large for you, you can choose the chart types and components you need and download in <a href="builder.html">the online builder</a>.

            h2#dataset Multiple Data Format Ready-To-Use
            p The built-in <code>dataset</code> attribute from ECharts v4.0 supports data formats including two-dimensional table, key-value object, and so on. The map from data to graphic can be easily set by the <code>encode</code> attribute. This is a more intuitive way to think when developing a chart, and it saves much time writing data-converting steps for developpers. Futhermore, it saves memory since different components can share on piece of data rather than copying.
            p ECharts supports TypedArray, which occupies less memory than array and is more gabbage-collection-friendly. For big data visualization, it is suggested to use TypedArray to improve performance.

            h2#big-data Data Visualization of Tens of Millions on Web
            p With the help of imcremental rendering technique since v4.0 and optimization of all ascpects, ECharts can display the visualization of tens of millions of data. What's more, interactions like scaling and transforming are fluent all the same.
            p Tens of millions of data usually takes over hundreds of MB spaces. ECharts provide streaming data ability since v4.0 and makes it possible to render as much data as loaded from WebSocket. There is no need to wait for all data to be loaded to start rendering.

            img(src="#{cdnRoot}/#{ecWWWLang}/images/features/scatterGL.jpg", width="60%")
            <br />
            img(src="#{cdnRoot}/#{ecWWWLang}/images/features/scatterGL2.jpg", width="30%")
            img(src="#{cdnRoot}/#{ecWWWLang}/images/features/scatterGL3.jpg", width="30%")

            h2#mobile Mobile Optimization
            p ECharts has been carefully optimized for mobile interaction, such zooming and panning the coordinate system with your fingers on small screens. The PC users can also use the mouse wheel to do the same interaction.
            p The fine-grained modularity and packaging mechanism allows ECharts to have a small package size on the mobile, and the optional SVG rendering engine makes the memory cost of the mobile much smaller.
            iframe(data-src="#{host}/examples/en/view.html?c=area-simple&reset=1&edit=1&renderer=svg", width="60%", height="400")

            h2#mult-platform Multi-Rendering Solutions and Cross-Platform Support

            p ECharts supports rendering charts in the form of Canvas, SVG (v4.0+), and VML. VML is compatible with lower versions of IE; SVG reduces the memory cost on mobiles; and Canvas can easily handle large data visualization and special rendering effects. Different rendering methods provide more choices, making ECharts performs better in different scenarios.

            p In addition to PC and mobile browsers, ECharts can also be used with node-canvas on Node for efficient server-side rendering (SSR). And ECharts support Wechat Applet rendering since v4.0.

            p Community contributors also provide us with a variety of different language extensions. For example, <a href="https://github.com/pyecharts/pyecharts" target="_blank">pyecharts</a> for Python, <a href="https://github.com/cosname/recharts" target="_blank">recharts</a> for R, <a href="https://github.com/randyzwitch/ECharts.jl">ECharts.jl</a> for Julia and so on.

            p We hope that the platform and language will not be the limit for everyone to use ECharts for visualization!

            h2#interaction Interactive Data Exploration In-Depth
            p Interaction is an important means of mining information from data. Overview first, zoom filtering to view details as needed is a basic requirement for data visualization interaction.
            p ECharts has been on the road of <em>interaction</em>. We have provided <a href="option.html#legend" target="_blank">legend</a>, <a href="option.html#visualMap" target="_blank">visualMap</a>, <a href="option.html#dataZoom" target="_blank">dataZoom</a>, <a href="option.html#tooltip" target="_blank">tooltip</a>, <a href="option.html#brush">brushing</a> and other ready-to-use interactive components, which can perform interactive operations such as multi-dimensional data screening, view zooming, and display details on the data.

            //- iframe(data-src="#{host}/examples/en/view.html?c=map-parallel-prices&reset=1&edit=1", width="60%", height="540")
            iframe(data-src="#{host}/examples/en/view.html?c=scatter-matrix&reset=1&edit=1", width="60%", height="540")

            h2#visual-mapping Multi-Dimensional Data Support and Rich Visual Coding
            p ECharts 3 began to strengthen support for multi-dimensional data. In addition to the common multi-dimensional data visualization tools such as parallel coordinates, for traditional scatter plots, etc., the input data can also be multiple dimensions. With the rich visual coding provided by the visual mapping component <a href="option.html#visualMap" target="_blank">visualMap</a>, it is possible to map data of different dimensions to color, size, transparency, shading, etc. Different visual channels.
            iframe(data-src="#{host}/examples/en/view.html?c=scatter-nutrients-matrix&reset=1&edit=1", width="60%", height="400")

            h2#dynamic-data Dynamic Data
            p ECharts is driven by data, and changes in data drive changes in the chart. So the implementation of dynamic data has become extremely simple, just need to get the data, fill in the data, ECharts will find the difference between the two sets of data and then use the appropriate animation to represent the data changes. The <a href="option.html#timeline" target="_blank">timeline</a> component can present data information in a higher time dimension.
            iframe(data-src="#{host}/examples/en/view.html?c=scatter-life-expectancy-timeline&reset=1&edit=1", width="60%", height="400")

            h2#fancy-effects Special Effects
            p ECharts provides eye-catching effects for the visualization of geographic data such as line data and point data.
            iframe(data-src="#{host}/examples/en/view.html?c=lines-bmap-effect&reset=1&edit=1", width="60%", height="400")

            h2#gl More Powerful and Beautiful 3D Visualization with GL
            p Do you want to achieve 3D visualization in VR, large screen scenes? We provide WebGL-based ECharts GL. You can use ECharts GL to draw 3D Earth, buildings, and population distribution histograms as easily as ECharts common components. Furthermore, we also provide configuration items so that you can get artistic results with a few lines of configuration!

            img(src="#{cdnRoot}/#{ecWWWLang}/images/features/flowGL-line.jpg", width="40%")
            img(src="#{cdnRoot}/#{ecWWWLang}/images/features/buildings-ny.jpg", width="40%")
            <br />
            img(src="#{cdnRoot}/#{ecWWWLang}/images/features/capetown-taxi.jpg", width="40%")
            img(src="#{cdnRoot}/#{ecWWWLang}/images/features/population.jpg", width="40%")

            h2#aria Accessibility

            p When we talk about visualization, we tend to naturally associate it with seeing, but it is one-sided. The W3C has developed the Accessible Rich Internet Applications Suite (WAI-ARIA), which aims to make web content and web applications accessible to more people with disabilities.
            p ECharts 4.0 complies with this specification and supports automatic generation of descriptions based on chart configuration items, enabling people with visual disabilities to understand the chart content with the help of reading devices, so that charts can be accessed by more people!


block extra_js
    script(type='text/javascript').
        document.getElementById('nav-doc').className = 'active';
